{
 "cells": [
  {
   "cell_type": "markdown",
   "id": "a50b59ef-51d5-4c14-8a8a-55836f3bd1dd",
   "metadata": {},
   "source": [
    "Chapter 21\n",
    "# 将有向图转换为关联矩阵\n",
    "Book_6《数据有道》 | 鸢尾花书：从加减乘除到机器学习"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "id": "24cdaf05-5567-4b87-b232-ae82a9abff83",
   "metadata": {},
   "outputs": [],
   "source": [
    "import matplotlib.pyplot as plt\n",
    "import networkx as nx\n",
    "import numpy as np\n",
    "import seaborn as sns"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "id": "5f2ecd59-f6c8-4a23-bcdb-dc3c73b727b6",
   "metadata": {},
   "outputs": [],
   "source": [
    "G = nx.DiGraph()\n",
    "# 创建有向图的实例"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "id": "4ed86243-583b-4d8e-931c-b3b47ed09203",
   "metadata": {},
   "outputs": [],
   "source": [
    "G.add_nodes_from(['a', 'b', 'c', 'd'])\n",
    "# 添加多个顶点"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "id": "fdde0032-d5ba-4993-8235-97d806cd7e9a",
   "metadata": {},
   "outputs": [],
   "source": [
    "G.add_edges_from([('b','a'),('c','b'),\n",
    "                  ('b','d'),('d','c'),\n",
    "                  ('a','c')])\n",
    "# 增加一组有向边"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "id": "4bb4c143-66fd-448a-9edd-feaf035d61e3",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 600x600 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "plt.figure(figsize = (6,6))\n",
    "nx.draw_networkx(G, \n",
    "                 node_size = 180)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "id": "1a1319c4-8551-402b-842b-7dd3ab432145",
   "metadata": {},
   "outputs": [],
   "source": [
    "A = nx.adjacency_matrix(G).todense()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "id": "cd8aef78-e6b3-441f-afa8-b97c7e507077",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([[0, 0, 1, 0],\n",
       "       [1, 0, 0, 1],\n",
       "       [0, 1, 0, 0],\n",
       "       [0, 0, 1, 0]], dtype=int32)"
      ]
     },
     "execution_count": 7,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "A"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "id": "96285466-7c0f-467f-80ae-16708e83a6bd",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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1xb36dq1a5u2bw0JGgCAViQkJCgzM1PFxcWBdY2NjSouLlZ2dnaL+2RnZwdtL0l/+tOfWt2+NbS4L4PH41FhYaHt2ySxgvGOPsY8uhhve/L5fJowYYKGDBmiYcOGaenSpaqpqVF+fr4kKS8vT927dw9MMpsxY4b+5V/+RYsXL9YPfvADbdiwQR999JFWrlzZpvPa5jErAADsatmyZXrppZdUXl6uQYMG6ZVXXlFWVpYkaeTIkUpLS9PatWsD22/atElz587Vl19+qVtuuUWLFi3S/fff36ZzkqABALAh7kEDAGBDJGgAAGyIBA0AgA2RoGF7I0eO1MyZM60OA4gqrnuQoAEAsCESNAAANkSCDsO2bdt0xx13qFOnTkpOTtYPf/hDHT161OqwYtq3336r6dOnq2PHjkpJSdG8efOi9g06TtXY2KhFixapV69e8ng8uuGGG/T8889bHVZMqqmpUV5enjp06KBu3bpp8eLFVocEGyBBh6GmpkY+n08fffSRiouL5Xa7NWbMGDU2NlodWsxat26d2rVrpz179ujXv/61lixZotWrV1sdVkwrKCjQiy++qHnz5unQoUNav359s2/oQWQ888wz+s///E/9+7//u7Zv366dO3dq3759VocFi/GikgiorKxU586ddeDAAaWnp1sdTswZOXKkTpw4oYMHD8rlckmS5syZo82bN+vQoUMWRxebvv76a3Xu3FnLli3TE088YXU4Me3s2bNKTk7Wm2++qUceeUSSdOrUKV1//fWaPHmyli5dam2AsAwVdBj+8pe/aNy4cbr55pt1zTXXKC0tTZJUVlZmbWAxbPjw4YHkLH33Mvq//OUvamhosDCq2HX48GHV1dXpnnvusTqUmHf06FHV19cHXhspSddee6169+5tYVSwA74sIwy5ubm68cYbtWrVKl133XVqbGxUenq66uvrrQ4NiIjExESrQwAcjwq6jaqqqvT5559r7ty5uueee9S3b19VV1dbHVbM2717d9DPu3bt0i233KK4uDiLIoptt9xyixITE5t9ZR4ir2fPnoqPjw+6xqurq3XkyBELo4IdUEG3UVJSkpKTk7Vy5Up169ZNZWVlmjNnjtVhxbyysjL5fD5NmTJF+/bt029+8xtmul5BXq9Xs2fP1rPPPquEhASNGDFCJ0+e1MGDBzVx4kSrw4spHTp00MSJE/XMM88oOTlZXbp00c9+9jO53dRPTkeCbiO3260NGzboJz/5idLT09W7d2+98sorGjlypNWhxbS8vDzV1tZq2LBhiouL04wZMzR58mSrw4pp8+bNU7t27TR//nz9/e9/V7du3fTjH//Y6rBi0ksvvaSzZ88qNzdXV199tX7605/q9OnTVocFizGLGwAAG6KHAgCADZGgAQCwIRI0AAA2RIIGAMCGSNAAANgQCRoAABsiQQMAYEMkaAAAbIgEDQCADZGgAQCwIRI0AAA29P8AWhkx9KB1bDYAAAAASUVORK5CYII=\n",
      "text/plain": [
       "<Figure size 640x480 with 2 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "sns.heatmap(A, cmap = 'Blues', \n",
    "            annot = True, fmt = '.0f',\n",
    "            xticklabels = list(G.nodes), \n",
    "            yticklabels = list(G.nodes),\n",
    "            linecolor = 'k', square = True,\n",
    "            linewidths = 0.2)\n",
    "plt.savefig('邻接矩阵，有向图.svg')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "id": "d893fa39-4bcc-4803-bbd9-1c9738d22600",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "NodeView(('a', 'b', 'c', 'd'))"
      ]
     },
     "execution_count": 9,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "G.nodes()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "id": "1183b162-5b00-4e2f-8555-ce3d6b0e75ee",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "OutEdgeView([('a', 'c'), ('b', 'a'), ('b', 'd'), ('c', 'b'), ('d', 'c')])"
      ]
     },
     "execution_count": 10,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "G.edges()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "id": "4498d4d1-2051-42ae-b8cc-9c3b422475da",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([[1., 1., 0., 0., 0.],\n",
       "       [0., 1., 1., 1., 0.],\n",
       "       [1., 0., 0., 1., 1.],\n",
       "       [0., 0., 1., 0., 1.]])"
      ]
     },
     "execution_count": 11,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "nx.incidence_matrix(G).todense()\n",
    "# 不考虑方向，等同于与无向图"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "id": "5b2d8d14-db6e-4769-9ee5-febf5828320e",
   "metadata": {},
   "outputs": [],
   "source": [
    "C = nx.incidence_matrix(G, oriented = True).todense()\n",
    "# 关联矩阵，考虑方向"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 13,
   "id": "1518f849-227a-42c1-b9a0-e06590c1b7a9",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([[-1.,  1.,  0.,  0.,  0.],\n",
       "       [ 0., -1., -1.,  1.,  0.],\n",
       "       [ 1.,  0.,  0., -1.,  1.],\n",
       "       [ 0.,  0.,  1.,  0., -1.]])"
      ]
     },
     "execution_count": 13,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "C"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 21,
   "id": "ae3e471e-e5e2-4745-987e-9e497641efaa",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([2., 3., 3., 2.])"
      ]
     },
     "execution_count": 21,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "np.abs(C).sum(axis = 1)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 16,
   "id": "5542e63b-5089-4a85-8cac-4c883db91f91",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "{'a': 2, 'b': 3, 'c': 3, 'd': 2}"
      ]
     },
     "execution_count": 16,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "dict(G.degree())"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 23,
   "id": "fd1bfefb-1eae-4379-b03a-3178b4a6771f",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([1., 1., 2., 1.])"
      ]
     },
     "execution_count": 23,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# 有向图的入度\n",
    "C.sum(axis = 1, where = (C == 1))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 17,
   "id": "439468f8-f7c1-4a62-bf76-073588e5851b",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "InDegreeView({'a': 1, 'b': 1, 'c': 2, 'd': 1})"
      ]
     },
     "execution_count": 17,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "G.in_degree()\n",
    "# 有向图的入度"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 24,
   "id": "8ade52fb-ca3e-4d9a-a7af-2567fc477f33",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([-1., -2., -1., -1.])"
      ]
     },
     "execution_count": 24,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# 有向图的出度\n",
    "C.sum(axis = 1, where = (C == -1))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 18,
   "id": "6c285d4a-f025-46f0-b1ba-ddc2063d6a59",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "OutDegreeView({'a': 1, 'b': 2, 'c': 1, 'd': 1})"
      ]
     },
     "execution_count": 18,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "G.out_degree()\n",
    "# 有向图的出度"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 15,
   "id": "9a0a66f8-8eeb-41b1-845a-18d8b9b7d1a8",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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ACZMi1hDcgEAgAlni1jDtAgAALAVlQsAAEyYFrGG5AIAABNSC2uYFgEAALaicgEAgAm3XLeG5AIAABNyC2tILgAAMGFBpzWsuQAAALaicgEAgAmFC2tILgAAMGFBpzVMiwAAEEAWLFigTp06KTw8XMnJydq4cWOd/d9++2316NFD4eHh6t27tz766COP5w3D0KxZs9S2bVtFREQoJSVF3377bWO+BZILAADMHA77toZYvny5MjMzNXv2bG3evFl9+/ZVamqq9u3bd8b+n332mW666SZNnDhR//73vzV69GiNHj1aW7Zscfd56qmn9Oyzz2rhwoXasGGDIiMjlZqaqurqaitDVCeSCwAATBwOh21bQ8yfP1+TJk1Senq6EhMTtXDhQjVr1kyLFy8+Y/8//vGPSktL07333quePXtqzpw5GjBggP70pz9JOlm1eOaZZzRz5kyNGjVKffr00dKlS/Xjjz/q3XfftTpMZxVQay6eH5Po7xCCVkRT5gd9xdhZU52/wN8hBC2+884PLpdLLpfLo83pdMrpdHq0HTt2TJs2bVJWVpa7LSQkRCkpKcrLyzvjsfPy8pSZmenRlpqa6k4cdu3apZKSEqWkpLifj4qKUnJysvLy8jR27Fgrb+2sqFwAAGASYuOWnZ2tqKgojy07O/u01zxw4IBqamoUHx/v0R4fH6+SkpIzxllSUlJn/1P/35Bj2iGgKhfh/e7ydwhB59RfjVP+vtXPkQSfU381Mna+OTV+R48bfo4k+JyqlvGd55tfolpm50W0srKyTqsumKsW55qASi4AADjXnGkK5ExiY2MVGhqq0tJSj/bS0lIlJCSccZ+EhIQ6+5/6/9LSUrVt29ajT79+/RryNhqEaREAAExCHPZt3goLC1NSUpJycnLcbbW1tcrJydGQIUPOuM+QIUM8+kvS6tWr3f07d+6shIQEjz6VlZXasGHDWY9pByoXAACYNCQpsFNmZqZuvfVWDRw4UIMGDdIzzzyjqqoqpaenS5LGjx+v9u3bu9ds/P73v9d//dd/6emnn9aIESO0bNkyffHFF3rppZcknZzemTp1qh599FFddNFF6ty5sx588EG1a9dOo0ePbrT3QXIBAICJv25cduONN2r//v2aNWuWSkpK1K9fP61YscK9ILOwsFAhIT9POlx66aV68803NXPmTP3hD3/QRRddpHff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\n",
      "text/plain": [
       "<Figure size 640x480 with 2 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "sns.heatmap(C, cmap = 'Blues', \n",
    "            annot = True, fmt = '.0f',\n",
    "            yticklabels = list(G.nodes), \n",
    "            xticklabels = list(G.edges),\n",
    "            linecolor = 'k', square = True,\n",
    "            linewidths = 0.2)\n",
    "plt.savefig('关联矩阵，有向图.svg')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "c22992c2-98a4-4e60-a058-6c4841090839",
   "metadata": {},
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3 (ipykernel)",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.10.9"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 5
}
